// pages/search/search.js
import request from '../../static/utils/request'
let isSend = false; // 节流信号
Page({

  /**
   * 页面的初始数据
   */
  data: {
    historyList: [], // 保存历史数据
    placeholderData: '', //搜索框默认的数据
    hotList: [], // 热搜数据
    placeholderWord: '', // 输入框数据
    searchList: [], // 模糊匹配内容
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function(options) {
    console.log("this----", this);
    this.getPlaceholderData();
    this.getHotListData();
    this.getHistoryData();
  },

  // 获取搜索框默认的数据
  async getPlaceholderData() {
    let defaultWorld = await request('/search/default');
    this.setData({
      placeholderData: defaultWorld.data.showKeyword
    })
  },

  // 获取历史数据
  getHistoryData() {
    let historyList = wx.getStorageSync("searchHistory");
    if (!historyList) {
      return
    }
    this.setData({
      historyList
    })
  },

  // 获取热搜排行榜歌曲
  async getHotListData() {
    let hotListData = await request('/search/hot/detail');
    this.setData({
      hotList: hotListData.data
    })
  },

  // 清空输入框
  cancelInput() {
    this.setData({
      placeholderWord: '',
      searchList: []
    })
  },
  // 输入触发事件
  handlePlaceholderWord(event) {
    console.log(event.detail.value);
    this.setData({
        placeholderWord: event.detail.value.trim()
      })
      // 函数节流
    if (isSend) {
      return
    }
    isSend = true;
    setTimeout(() => {
      this.getSearchListData();
      isSend = false;
    }, 300)
  },

  // 根据用户输入的内容进行模糊匹配
  async getSearchListData() {
    if (!this.data.placeholderWord) {
      this.setData({
        searchList: []
      })
      return
    }
    let {
      placeholderWord,
      historyList
    } = this.data;

    console.log("this", this);
    let searchData = await request('/search', {
      keywords: placeholderWord,
      limit: 10
    });
    console.log(placeholderWord);
    console.log(searchData);
    this.setData({
        searchList: searchData.result.songs
      })
      // 将搜索的关键字添加到搜索历史记录中
    if (historyList.indexOf(placeholderWord) !== -1) {
      historyList.splice(historyList.indexOf(placeholderWord), 1)
    }
    historyList.unshift(placeholderWord);
    this.setData({
      historyList
    })

    wx.setStorageSync('searchHistory', historyList)
  },

  // 删除历史记录
  deleteHistory() {
    wx.showModal({
      title: '确定删除历史记录？',
      success: (result) => {
        if (result.confirm) {
          this.setData({
            historyList: []
          })
          wx.removeStorageSync("searchHistory");
        }
      },
    });

  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function() {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function() {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function() {

  }
})